home *** CD-ROM | disk | FTP | other *** search
/ Cream of the Crop 26 / Cream of the Crop 26.iso / program / ccdl150l.zip / CTYPE / PHICTYPE.C < prev   
C/C++ Source or Header  |  1996-07-02  |  9KB  |  482 lines

  1. #define __USELOCALES__
  2. #include <ctype.h>
  3.  
  4. static unsigned char alchars[256] ={
  5. /* Bank 0 */
  6.     0x00,0x00,0x00,0x00,
  7.     0x00,0x00,0x00,0x00,
  8.     0x7f,0xff,0xff,0xe0,
  9.     0x7f,0xff,0xff,0xe0,
  10.  
  11. /* Bank 1 */
  12.     0x00,0x00,0x00,0x00,
  13.     0x00,0x00,0x00,0x00,
  14.     0x00,0x7e,0x11,0x00,
  15.     0x00,0x00,0x00,0x00,
  16.  
  17. /* Bank 2 */
  18.     0x00,0x00,0x00,0x00,
  19.     0x00,0x00,0xff,0xff,
  20.     0xff,0xff,0xff,0xff,
  21.     0xff,0xff,0xff,0xff,
  22.  
  23. /* Bank 3 */
  24.     0x00,0x00,0x00,0x00,
  25.     0x00,0x00,0x00,0x00,
  26.     0xff,0xff,0xff,0xff,
  27.     0xff,0xfc,0x00,0x00,
  28.  
  29. /* Bank 4*/
  30.     0x00,0x00,0x00,0x00,
  31.     0x00,0x00,0x00,0x00,
  32.     0xff,0xff,0xff,0x00,
  33.     0xff,0xff,0xff,0x00,
  34.  
  35. /* Bank 5*/
  36.     0x00,0x00,0x00,0x00,
  37.     0x00,0x00,0x00,0x00,
  38.     0xff,0xff,0xf8,0x00,
  39.     0xff,0xff,0xff,0xf0,
  40.  
  41. /* Bank 6 */
  42.     0x00,0x00,0x00,0x00,
  43.     0x00,0x00,0x00,0x00,
  44.     0x00,0x00,0x00,0x00,
  45.     0x00,0x00,0x00,0x00,
  46.  
  47. /* Bank 7 */
  48.     0x00,0x00,0x00,0x00,
  49.     0x00,0x00,0x00,0x00,
  50.     0x00,0x00,0x00,0x00,
  51.     0x00,0x00,0x00,0x00,
  52.  
  53. /* Bank 8 */
  54.     0x00,0x00,0x00,0x00,
  55.     0x00,0x00,0x00,0x00,
  56.     0x00,0x00,0x00,0x00,
  57.     0x00,0x00,0x00,0x00,
  58.  
  59. /* Bank 9 */
  60.     0x00,0x00,0x00,0x00,
  61.     0x00,0x00,0x00,0x00,
  62.     0x00,0x00,0x00,0x00,
  63.     0x00,0x00,0x00,0x00,
  64.  
  65. /* Bank 10 */
  66.     0x00,0x00,0x00,0x00,
  67.     0x00,0x00,0x00,0x00,
  68.     0x00,0x00,0x00,0x00,
  69.     0x00,0x00,0x00,0x00,
  70.  
  71. /* Bank 11 */
  72.     0x00,0x00,0x00,0x00,
  73.     0x00,0x00,0x00,0x00,
  74.     0x00,0x00,0x00,0x00,
  75.     0x00,0x00,0x00,0x00,
  76.  
  77. /* Bank 12 */
  78.     0x00,0x00,0x00,0x00,
  79.     0x00,0x00,0x00,0x00,
  80.     0x00,0x00,0x00,0x00,
  81.     0x00,0x00,0x00,0x00,
  82.  
  83. /* Bank 13 */
  84.     0x00,0x00,0x00,0x00,
  85.     0x00,0x00,0x00,0x00,
  86.     0x00,0x00,0x00,0x00,
  87.     0x00,0x00,0x00,0x00,
  88.  
  89. /* Bank 14 */
  90.     0x00,0x00,0x00,0x00,
  91.     0x00,0x00,0x00,0x00,
  92.     0x00,0x00,0x00,0x00,
  93.     0x00,0x00,0x00,0x00,
  94.  
  95. /* Bank 15 */
  96.     0x00,0x00,0x00,0x00,
  97.     0x00,0x00,0x00,0x00,
  98.     0x00,0x00,0x00,0x00,
  99.     0x00,0x00,0x00,0x00
  100. };
  101.  
  102. static unsigned char spacechars[256] ={
  103. /* Bank 0 */
  104.     0x00,0x24,0x00,0x00,
  105.     0x80,0x00,0x00,0x00,
  106.     0x00,0x00,0x00,0x00,
  107.     0x00,0x00,0x00,0x01,
  108.  
  109. /* Bank 1 */
  110.     0x00,0x00,0x00,0x00,
  111.     0x00,0x00,0x00,0x00,
  112.     0x00,0x00,0x00,0x00,
  113.     0x00,0x00,0x00,0x00,
  114.  
  115. /* Bank 2 */
  116.     0x00,0x00,0x00,0x00,
  117.     0x00,0x00,0x00,0x00,
  118.     0x00,0x00,0x00,0x00,
  119.     0x00,0x00,0x00,0x00,
  120.  
  121. /* Bank 3 */
  122.     0x00,0x00,0x00,0x00,
  123.     0x00,0x00,0x00,0x00,
  124.     0x00,0x00,0x00,0x00,
  125.     0x00,0x00,0x00,0x00,
  126.  
  127. /* Bank 4*/
  128.     0x00,0x00,0x00,0x00,
  129.     0x00,0x00,0x00,0x00,
  130.     0x00,0x00,0x00,0x00,
  131.     0x00,0x00,0x00,0x00,
  132.  
  133. /* Bank 5*/
  134.     0x00,0x00,0x00,0x00,
  135.     0x00,0x00,0x00,0x00,
  136.     0x00,0x00,0x00,0x00,
  137.     0x00,0x00,0x00,0x00,
  138.  
  139. /* Bank 6 */
  140.     0x00,0x00,0x00,0x00,
  141.     0x00,0x00,0x00,0x00,
  142.     0x00,0x00,0x00,0x00,
  143.     0x00,0x00,0x00,0x00,
  144.  
  145. /* Bank 7 */
  146.     0x00,0x00,0x00,0x00,
  147.     0x2a,0xa8,0xb1,0xd8,
  148.     0x80,0x76,0x3b,0x10,
  149.     0x08,0x04,0x02,0x01,
  150.  
  151. /* Bank 8 */
  152.     0x00,0x00,0x00,0x00,
  153.     0x00,0x00,0x00,0x00,
  154.     0x00,0x00,0x00,0x00,
  155.     0x00,0x00,0x00,0x00,
  156.  
  157. /* Bank 9 */
  158.     0x00,0x00,0x00,0x00,
  159.     0x00,0x00,0x00,0x00,
  160.     0x00,0x00,0x00,0x00,
  161.     0x00,0x00,0x00,0x00,
  162.  
  163. /* Bank 10 */
  164.     0x00,0x00,0x00,0x00,
  165.     0x00,0x00,0x00,0x00,
  166.     0x00,0x00,0x00,0x00,
  167.     0x00,0x00,0x00,0x00,
  168.  
  169. /* Bank 11 */
  170.     0x00,0x00,0x00,0x00,
  171.     0x00,0x00,0x00,0x00,
  172.     0x00,0x00,0x00,0x00,
  173.     0x00,0x00,0x00,0x00,
  174.  
  175. /* Bank 12 */
  176.     0x00,0x00,0x00,0x00,
  177.     0x00,0x00,0x00,0x00,
  178.     0x00,0x00,0x00,0x00,
  179.     0x00,0x00,0x00,0x00,
  180.  
  181. /* Bank 13 */
  182.     0x00,0x00,0x00,0x00,
  183.     0x00,0x00,0x00,0x00,
  184.     0x00,0x00,0x00,0x00,
  185.     0x00,0x00,0x00,0x00,
  186.  
  187. /* Bank 14 */
  188.     0x00,0x00,0x00,0x00,
  189.     0x00,0x00,0x00,0x00,
  190.     0x00,0x00,0x00,0x00,
  191.     0x00,0x00,0x00,0x00,
  192.  
  193. /* Bank 15 */
  194.     0x00,0x00,0x00,0x00,
  195.     0xff,0x00,0x00,0x00,
  196.     0x00,0x00,0x00,0x00,
  197.     0x00,0x00,0x00,0x00
  198. };
  199.  
  200. static unsigned char punctchars[256] ={
  201. /* Bank 0 */
  202.     0x00,0x00,0x00,0x00,
  203.     0x65,0xca,0x00,0x31,
  204.     0x00,0x00,0x00,0x1d,
  205.     0x80,0x00,0x00,0x14,
  206.  
  207. /* Bank 1 */
  208.     0x00,0x00,0x00,0x00,
  209.     0x00,0x00,0x00,0x00,
  210.     0x00,0x76,0xee,0xc0,
  211.     0x00,0x00,0x00,0x00,
  212.  
  213. /* Bank 2 */
  214.     0x00,0x00,0x00,0x00,
  215.     0xff,0xe0,0x00,0x00,
  216.     0x00,0x00,0x00,0x00,
  217.     0x00,0x00,0x00,0x00,
  218.  
  219. /* Bank 3 */
  220.     0x00,0x00,0x00,0x00,
  221.     0x00,0x00,0x00,0x00,
  222.     0x00,0x00,0x00,0x00,
  223.     0x00,0x00,0x00,0x00,
  224.  
  225. /* Bank 4*/
  226.     0x00,0x00,0x00,0x00,
  227.     0x00,0x00,0x0f,0xfc,
  228.     0x00,0x00,0x00,0xfc,
  229.     0x00,0x00,0x00,0xf0,
  230.  
  231. /* Bank 5*/
  232.     0x00,0x00,0x00,0x00,
  233.     0x00,0x40,0x00,0x00,
  234.     0x00,0x00,0x00,0x00,
  235.     0x00,0x00,0x00,0x00,
  236.  
  237. /* Bank 6 */
  238.     0x00,0x00,0x00,0x00,
  239.     0x00,0x00,0x00,0x00,
  240.     0x00,0x00,0x00,0x00,
  241.     0x00,0x00,0x00,0x00,
  242.  
  243. /* Bank 7 */
  244.     0x00,0x00,0x00,0x00,
  245.     0x00,0x00,0x00,0x00,
  246.     0x00,0x00,0x00,0x00,
  247.     0x00,0x00,0x00,0x00,
  248.  
  249. /* Bank 8 */
  250.     0x00,0x00,0x00,0x00,
  251.     0x00,0x00,0x00,0x00,
  252.     0x00,0x00,0x00,0x00,
  253.     0x00,0x00,0x00,0x00,
  254.  
  255. /* Bank 9 */
  256.     0x00,0x00,0x00,0x00,
  257.     0x00,0x00,0x00,0x00,
  258.     0x00,0x00,0x00,0x00,
  259.     0x00,0x00,0x00,0x00,
  260.  
  261. /* Bank 10 */
  262.     0x00,0x00,0x00,0x00,
  263.     0x00,0x00,0x00,0x00,
  264.     0x00,0x00,0x00,0x00,
  265.     0x00,0x00,0x00,0x00,
  266.  
  267. /* Bank 11 */
  268.     0x00,0x00,0x00,0x00,
  269.     0x00,0x00,0x00,0x00,
  270.     0x00,0x00,0x00,0x00,
  271.     0x00,0x00,0x00,0x00,
  272.  
  273. /* Bank 12 */
  274.     0x00,0x00,0x00,0x00,
  275.     0x00,0x00,0x00,0x00,
  276.     0x00,0x00,0x00,0x00,
  277.     0x00,0x00,0x00,0x00,
  278.  
  279. /* Bank 13 */
  280.     0x00,0x00,0x00,0x00,
  281.     0x00,0x00,0x00,0x00,
  282.     0x00,0x00,0x00,0x00,
  283.     0x00,0x00,0x00,0x00,
  284.  
  285. /* Bank 14 */
  286.     0x00,0x00,0x00,0x00,
  287.     0x00,0x00,0x00,0x00,
  288.     0x00,0x00,0x00,0x00,
  289.     0x00,0x00,0x00,0x00,
  290.  
  291. /* Bank 15 */
  292.     0x00,0x00,0x00,0x00,
  293.     0x00,0x00,0x00,0x00,
  294.     0x00,0x00,0x00,0x00,
  295.     0x00,0x00,0x00,0x00
  296. };
  297. static unsigned char lowerchars[256] ={
  298. /* Bank 0 */
  299.     0x00,0x00,0x00,0x00,
  300.     0x00,0x00,0x00,0x00,
  301.     0x00,0x00,0x00,0x00,
  302.     0x7f,0xff,0xff,0xe0,
  303.  
  304. /* Bank 1 */
  305.     0x00,0x00,0x00,0x00,
  306.     0x00,0x00,0x00,0x00,
  307.     0x00,0x00,0x00,0x00,
  308.     0x00,0x00,0x00,0x00,
  309.  
  310. /* Bank 2 */
  311.     0x00,0x00,0x00,0x00,
  312.     0x00,0x00,0x55,0x55,
  313.     0x55,0x55,0x55,0x55,
  314.     0x55,0x55,0x55,0x55,
  315.  
  316. /* Bank 3 */
  317.     0x00,0x00,0x00,0x00,
  318.     0x00,0x00,0x00,0x00,
  319.     0xff,0xff,0xff,0xff,
  320.     0xfe,0x00,0x00,0x00,
  321.  
  322. /* Bank 4*/
  323.     0x00,0x00,0x00,0x00,
  324.     0x00,0x00,0x00,0x00,
  325.     0x00,0x00,0x00,0x00,
  326.     0xff,0xff,0xff,0x00,
  327.  
  328. /* Bank 5*/
  329.     0x00,0x00,0x00,0x00,
  330.     0x00,0x00,0x00,0x00,
  331.     0x00,0x00,0x00,0x00,
  332.     0xff,0xff,0xff,0xf0,
  333.  
  334. /* Bank 6 */
  335.     0x00,0x00,0x00,0x00,
  336.     0x00,0x00,0x00,0x00,
  337.     0x00,0x00,0x00,0x00,
  338.     0x00,0x00,0x00,0x00,
  339.  
  340. /* Bank 7 */
  341.     0x00,0x00,0x00,0x00,
  342.     0x00,0x00,0x00,0x00,
  343.     0x00,0x00,0x00,0x00,
  344.     0x00,0x00,0x00,0x00,
  345.  
  346. /* Bank 8 */
  347.     0x00,0x00,0x00,0x00,
  348.     0x00,0x00,0x00,0x00,
  349.     0x00,0x00,0x00,0x00,
  350.     0x00,0x00,0x00,0x00,
  351.  
  352. /* Bank 9 */
  353.     0x00,0x00,0x00,0x00,
  354.     0x00,0x00,0x00,0x00,
  355.     0x00,0x00,0x00,0x00,
  356.     0x00,0x00,0x00,0x00,
  357.  
  358. /* Bank 10 */
  359.     0x00,0x00,0x00,0x00,
  360.     0x00,0x00,0x00,0x00,
  361.     0x00,0x00,0x00,0x00,
  362.     0x00,0x00,0x00,0x00,
  363.  
  364. /* Bank 11 */
  365.     0x00,0x00,0x00,0x00,
  366.     0x00,0x00,0x00,0x00,
  367.     0x00,0x00,0x00,0x00,
  368.     0x00,0x00,0x00,0x00,
  369.  
  370. /* Bank 12 */
  371.     0x00,0x00,0x00,0x00,
  372.     0x00,0x00,0x00,0x00,
  373.     0x00,0x00,0x00,0x00,
  374.     0x00,0x00,0x00,0x00,
  375.  
  376. /* Bank 13 */
  377.     0x00,0x00,0x00,0x00,
  378.     0x00,0x00,0x00,0x00,
  379.     0x00,0x00,0x00,0x00,
  380.     0x00,0x00,0x00,0x00,
  381.  
  382. /* Bank 14 */
  383.     0x00,0x00,0x00,0x00,
  384.     0x00,0x00,0x00,0x00,
  385.     0x00,0x00,0x00,0x00,
  386.     0x00,0x00,0x00,0x00,
  387.  
  388. /* Bank 15 */
  389.     0x00,0x00,0x00,0x00,
  390.     0x00,0x00,0x00,0x00,
  391.     0x00,0x00,0x00,0x00,
  392.     0x00,0x00,0x00,0x00
  393. };
  394. int isspace(int c)
  395. {
  396.     int val,bit;
  397.     c &= 0x7ff;
  398.     val = (c >> 3) ;
  399.     bit = 0x80 >> (c & 7);
  400.     return((spacechars[val] & bit) != 0);
  401. }
  402. int isalpha(int c)
  403. {
  404.     int val,bit;
  405.     c &= 0x7ff;
  406.     val = (c >> 3) ;
  407.     bit = 0x80 >> (c & 7);
  408.     return((alchars[val] & bit) != 0);
  409. }
  410. int ispunct(int c)
  411. {
  412.     int val,bit;
  413.     c &= 0x7ff;
  414.     val = (c >> 3) ;
  415.     bit = 0x80 >> (c & 7);
  416.     return((punctchars[val] & bit) != 0);
  417. }
  418. int islower(int c)
  419. {
  420.     int val,bit;
  421.     c &= 0x7ff;
  422.     val = (c >> 3) ;
  423.     bit = 0x80 >> (c & 7);
  424.     return((lowerchars[val] & bit) != 0);
  425. }
  426. int isupper(int c)
  427. {
  428.     return(isalpha(c) && !islower(c));
  429. }
  430. int isprint(int c)
  431. {
  432.     return 1;
  433. }
  434.  
  435. int isalnum(int c)
  436. {
  437.     int val,bit;
  438.     c &= 0x7ff;
  439.     val = (c >> 3) ;
  440.     bit = 0x80 >> (c & 7);
  441.     if (alchars[val] & bit)
  442.         return 1;
  443.     else
  444.         return( ('0' <= c) && (c <= '9'));
  445. }
  446. int isgraph(int c)
  447. {
  448.     return(isalnum(c) || isxdigit(c) || ispunct(c));
  449. }
  450. int isdigit(int c)
  451. {
  452.     c &= 0x7ff;
  453.     return( ('0' <= c) && (c <= '9'));
  454. }
  455. int isxdigit(int c)
  456. {
  457.     c &= 0x7ff;
  458.     return(isdigit(c) || (('a' <= c) && ('f' >= c)) ||  (('A' <= c) && ('F' >= c)));
  459. }
  460. #undef isascii
  461. int isascii(int c)
  462. {
  463.     c &= 0x7ff;
  464.     return ( c < 0x80);
  465. }
  466. int iscntrl(int c)
  467. {
  468.     c &= 0x7ff;
  469.     return( (c & 0x7f) < 0x20);
  470. }
  471. int _ltolower(int c)
  472. {
  473.     if (isupper(c))
  474.         return c+32;
  475.     return c;
  476. }
  477. int _ltoupper(int c)
  478. {
  479.     if (islower(c))
  480.         return c-32;
  481.     return c;
  482. }